/*
*This is where a information for an account is created
*/
package Current;

import java.io.Serializable;

/**
 * @author Fork
 */
public class Account implements Serializable, Cloneable {

    private String Name;
    private Race Race;
    private ClassDT Class;
    private Integer Level;

    private UnitTraining Units;
    private ProeficiencyPoints Points;
    private StructureUpgrades Structures;
    private Armories Armories;
    private BattleUpgrades BattleUpgrades;
    private Economy Economy;
    private WarStats Stats;

    public Account(String Name, Race Race, ClassDT Cls, Integer Level) {
        this.Name = Name;
        this.Race = Race;
        this.Class = Cls;
        this.Level = Level;
        this.Structures = new StructureUpgrades();
        this.Points = new ProeficiencyPoints();
        this.Units = new UnitTraining();
        this.Armories = new Armories(Units);
        this.BattleUpgrades = new BattleUpgrades(Units);
        this.Economy = new Economy(Units, Points, Structures, this.Class);
        this.Stats = new WarStats(Units, Points, Structures, this.Race, this.Class, Armories, BattleUpgrades);

    }

    public ClassDT getClassDT() {
        return Class;
    }

    public void setClass(ClassDT Class) {
        this.Class = Class;
    }

    public int getLevel() {
        return Level;
    }

    public void setLevel(int Level) {
        this.Level = Level;
    }

    public String getName() {
        return Name;
    }

    public void setName(String Name) {
        this.Name = Name;
    }

    public Race getRace() {
        return Race;
    }

    public void setRace(Race Race) {
        this.Race = Race;
    }

    public Economy getEconomy() {
        return Economy;
    }

    public void setEconomy(Economy Economy) {
        this.Economy = Economy;
    }

    public void setLevel(Integer Level) {
        this.Level = Level;
    }

    public ProeficiencyPoints getPoints() {
        return Points;
    }

    public void setPoints(ProeficiencyPoints Points) {
        this.Points = Points;
    }

    public WarStats getStats() {
        return Stats;
    }

    public void setStats(WarStats Stats) {
        this.Stats = Stats;
    }

    public StructureUpgrades getStructures() {
        return Structures;
    }

    public void setStructures(StructureUpgrades Structures) {
        this.Structures = Structures;
    }

    public UnitTraining getUnits() {
        return Units;
    }

    public void setUnits(UnitTraining Units) {
        this.Units = Units;
    }

    public Armories getArmories() {
        return Armories;
    }

    public void setArmories(Armories Armories) {
        this.Armories = Armories;
    }

    public BattleUpgrades getBattleUpgrades() {
        return BattleUpgrades;
    }

    public void setBattleUpgrades(BattleUpgrades BattleUpgrades) {
        this.BattleUpgrades = BattleUpgrades;
    }
}
